'''
Autor(es): Lucas S. Beiler (https://notabug.org/lucassbeiler) e Gustavo Martins (https://github.com/00-000)
Versão: 1.0.1
'''
import cv2
import numpy as np
import argparse

print("Exemplo de uso: python yaie.py --imagem foto_original.png --efeito cores --salvar foto_editada.jpg \n")
print("Efeitos disponíveis: prbr; estranho; cores")
print("Para mais detalhes: python codigo.py --help \n")

aparse = argparse.ArgumentParser(description='aplicador de filtros em imagens por linha de comando')
aparse.add_argument('-e', '--efeito', type=str, metavar='', required=True, help='selecione um efeito')
aparse.add_argument('-i', '--imagem', type=str, metavar='', required=True, help='informe o filename da imagem a ser editada')
aparse.add_argument('-s', '--salvar', type=str, metavar='', help='use esse parâmetro seguido do filename desejado para salvar a imagem editada')
argumentos = aparse.parse_args()

if argumentos.efeito == 'prbr': # filtro em preto e branco
    imagem = cv2.imread(argumentos.imagem, 0)
    cv2.imshow("Filtro: Preto e Branco", imagem)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    if argumentos.salvar:
        cv2.imwrite(argumentos.salvar, imagem)
    else:
         print("Imagem não será salva!")

elif argumentos.efeito == 'estranho': # filtro 'estranho'
    imagem = cv2.Canny(cv2.imread(argumentos.imagem, 1), 0, 9)
    cv2.imshow("Filtro: Estranho", imagem)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    if argumentos.salvar:
            cv2.imwrite(argumentos.salvar, imagem)
    else:
         print("Imagem não será salva!")

elif argumentos.efeito == 'cores': # filtro que converte as cores do padrão RGB para o HSV
        imagem = cv2.cvtColor(cv2.imread(argumentos.imagem, 1), cv2.COLOR_RGB2HSV)
        cv2.imshow("Filtro: cores", imagem)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
        if argumentos.salvar:
                cv2.imwrite(argumentos.salvar, imagem)
        else:
            print("Imagem não será salva!")

